<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>systemd-run
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>systemd-run 中文手册</h1><h2 id="auth_name">译者：<strong><a href="http://www.jinbuguo.com/">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="http://www.jinbuguo.com/">金步国作品集</a> [ <a href="http://www.jinbuguo.com/">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="systemd-run"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>systemd-run — 在临时 scope 或 service 单元中运行命令</p></div><div class="refsynopsisdiv"><h2>大纲</h2><div class="cmdsynopsis"><p><code class="command">systemd-run</code>  [OPTIONS...]  <em class="replaceable"><code>COMMAND</code></em>
       [ARGS...]
       </p></div><div class="cmdsynopsis"><p><code class="command">systemd-run</code>  [OPTIONS...] [PATH OPTIONS...] {<em class="replaceable"><code>COMMAND</code></em>} [ARGS...]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-run</code>  [OPTIONS...] [SOCKET OPTIONS...] {<em class="replaceable"><code>COMMAND</code></em>} [ARGS...]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-run</code>  [OPTIONS...] [TIMER OPTIONS...] {<em class="replaceable"><code>COMMAND</code></em>} [ARGS...]</p></div></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="systemd-run.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p><span class="command"><strong>systemd-run</strong></span> 可以创建并启动一个临时的 <code class="filename">.service</code> 或
    <code class="filename">.scope</code> 单元，并在其中运行 <em class="replaceable"><code>COMMAND</code></em> 命令。
    此外，<span class="command"><strong>systemd-run</strong></span> 还可以创建并启动一个临时的 <code class="filename">.path</code>, <code class="filename">.socket</code>,
    <code class="filename">.timer</code> 单元以实现在特定的条件下启动(用于运行 <em class="replaceable"><code>COMMAND</code></em> 命令的)临时 <code class="filename">.service</code> 单元。</p><p>如果将某个命令作为临时服务单元来运行，那么它将像普通的服务单元一样接受 systemd 的管理，
    并且与其他单元一样，也会在 <span class="command"><strong>systemctl list-units</strong></span> 的输出中被显示出来。
    该命令将会运行在一个干净的、独立的执行环境中，并以 systemd 进程作为其父进程。
    <span class="command"><strong>systemd-run</strong></span> 将会以异步模式在后台启动临时服务并在命令开始执行之后返回(除非明确使用了
     <code class="option">--no-block</code> 或 <code class="option">--wait</code> 选项，
    详见后文)。</p><p>如果将某个命令作为临时 scope 单元来运行(通过使用 <code class="option">--scope</code> 选项)，
    那么该命令将被作为 <span class="command"><strong>systemd-run</strong></span> 的子进程来运行，因此，该命令将会继承 <span class="command"><strong>systemd-run</strong></span> 的执行环境。
    但同时需要注意的是，该命令的进程依然将像普通的服务单元一样接受 systemd 的管理，
    并且与其他单元一样，也会在 <span class="command"><strong>systemctl list-units</strong></span> 的输出中被显示出来。
    在这种情况下，<span class="command"><strong>systemd-run</strong></span> 将会以同步模式运行指定的命令，并等待命令执行完成之后才会返回。</p><p>如果使用了 path, socket, timer 选项(<code class="option">--*-property=</code>)来运行命令，
    那么将会在创建临时 service 单元的同时创建一个关联的临时 path, socket, timer 单元。
    只有临时 path, socket, timer 单元会被立即启动，而临时 service 单元将会被 path, socket, timer 单元启动(触发)。
    如果在使用了 <code class="option">--unit=</code> 选项的同时又省略了 <em class="replaceable"><code>COMMAND</code></em> 参数，
    那么 <span class="command"><strong>systemd-run</strong></span> 将只创建一个专门用于启动指定单元的临时
    <code class="filename">.path</code>, <code class="filename">.socket</code>, <code class="filename">.timer</code>  
    单元。</p><p>默认情况下，<span class="command"><strong>systemd-run</strong></span> 创建 <code class="option">simple</code>
    类型的临时服务(详见
    <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a> 手册)。
    因为 <code class="option">simple</code> 类型的服务会让 <span class="command"><strong>systemd-run</strong></span>
    在完成 <code class="function">fork()</code> 之后、
    未调用 <code class="function">execve()</code> 之前，即认为临时服务已经启动成功(可能实际上无法启动指定的命令)，
    所以可以考虑使用 <code class="option">exec</code> 类型的临时服务(<code class="option">--property=Type=exec</code>)
    以确保 <span class="command"><strong>systemd-run</strong></span> 仅在指定的命令行确实已成功启动时，
    才能成功返回。</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="选项(OPTIONS)">选项(OPTIONS)<a class="headerlink" title="Permalink to this headline" href="systemd-run.html#%E9%80%89%E9%A1%B9(OPTIONS)">¶</a></h2><p>可以识别的选项如下：</p><div class="variablelist"><dl class="variablelist"><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--no-ask-password">¶</a></dt><dd><p>在执行特权操作时
        不向用户索要密码。</p></dd><dt id="--scope"><span class="term"><code class="option">--scope</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--scope">¶</a></dt><dd><p>创建一个临时 <code class="filename">.scope</code> 单元(而不是默认的
          <code class="filename">.service</code> 单元)来执行命令。
          </p></dd><dt id="--unit="><span class="term"><code class="option">--unit=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--unit=">¶</a></dt><dd><p>明确指定单元的名称
        (而不是自动生成)</p></dd><dt id="--property="><span class="term"><code class="option">--property=</code>, </span><span class="term"><code class="option">-p</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--property=">¶</a></dt><dd><p>为临时 scope 或 service 单元设置一个属性。
        此选项接受的值的格式与
        <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>
        的 <span class="command"><strong>set-property</strong></span> 命令相同。</p></dd><dt id="--description="><span class="term"><code class="option">--description=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--description=">¶</a></dt><dd><p>为临时 service, scope, path, socket, timer  单元设置一个描述性字符串。
        默认值是 <em class="replaceable"><code>COMMAND</code></em> 参数自身。参见
        <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a> 的 <code class="varname">Description=</code> 选项。
        </p></dd><dt id="--slice="><span class="term"><code class="option">--slice=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--slice=">¶</a></dt><dd><p>将临时 <code class="filename">.service</code> 或 <code class="filename">.scope</code> 单元
        放入指定的 slice 单元中(而不是默认的 <code class="filename">system.slice</code> 单元)。</p></dd><dt id="-r"><span class="term"><code class="option">-r</code>, </span><span class="term"><code class="option">--remain-after-exit</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#-r">¶</a></dt><dd><p>在服务进程结束之后，继续保持服务的存在，直到被明确的停止(stop)。
        这有助于在服务进程运行结束之后收集服务单元的运行时信息。参见
        <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>
        的 <code class="varname">RemainAfterExit=</code> 选项。
        </p></dd><dt id="--send-sighup"><span class="term"><code class="option">--send-sighup</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--send-sighup">¶</a></dt><dd><p>在终止临时 scope 或 service 单元时，紧跟 SIGTERM 信号之后再立即发送一个 SIGHUP 信号。
        这有助于明确通知 shell 类进程连接已被切断。参见
        <a href="systemd.kill.html#"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>
        的 <code class="varname">SendSIGHUP=</code> 选项。
        </p></dd><dt id="--service-type="><span class="term"><code class="option">--service-type=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--service-type=">¶</a></dt><dd><p>设置临时 service 单元的类型，
        默认值是 <code class="constant">simple</code> 。参见
        <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>
        的 <code class="varname">Type=</code> 选项。此选项不能与 
        <code class="option">--scope</code> 
        一起使用。</p></dd><dt id="--uid="><span class="term"><code class="option">--uid=</code>, </span><span class="term"><code class="option">--gid=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--uid=">¶</a></dt><dd><p>以指定的 UID/GID 身份运行服务进程。参见
        <a href="systemd.exec.html#"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>
        的 <code class="varname">User=</code> 与 <code class="varname">Group=</code> 选项。</p></dd><dt id="--nice="><span class="term"><code class="option">--nice=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--nice=">¶</a></dt><dd><p>以指定的谦让级别(nice)运行服务进程。参见
        <a href="systemd.exec.html#"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>
         的 <code class="varname">Nice=</code> 选项。</p></dd><dt id="--working-directory="><span class="term"><code class="option">--working-directory=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--working-directory=">¶</a></dt><dd><p>以指定的工作目录运行服务进程。参见
        <code class="varname">WorkingDirectory=</code> 选项(
        <a href="systemd.exec.html#"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>)。</p></dd><dt id="--same-dir"><span class="term"><code class="option">--same-dir</code>, </span><span class="term"><code class="option">-d</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--same-dir">¶</a></dt><dd><p>类似于 <code class="option">--working-directory=</code> 选项，但是使用用户当前的工作目录
        运行服务进程。</p></dd><dt id="-E NAME=VALUE"><span class="term"><code class="option">-E <em class="replaceable"><code>NAME</code></em>=<em class="replaceable"><code>VALUE</code></em></code>, </span><span class="term"><code class="option">--setenv=<em class="replaceable"><code>NAME</code></em>=<em class="replaceable"><code>VALUE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#-E%20NAME=VALUE">¶</a></dt><dd><p>给服务进程传递一个环境变量。可以多次使用此选项以传递多个环境变量。参见
        <a href="systemd.exec.html#"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>
         的 <code class="varname">Environment=</code> 选项。</p></dd><dt id="--pty"><span class="term"><code class="option">--pty</code>, </span><span class="term"><code class="option">-t</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--pty">¶</a></dt><dd><p>通过一个伪终端设备，将临时服务单元的标准输入、标准输出、标准错误连接到运行
         <span class="command"><strong>systemd-run</strong></span> 命令的 TTY 上，
        从而允许运行例如 shell 之类需要与用户交互的命令。</p><p>注意，如果想要在本地容器或者宿主机上打开一个新的交互式登录会话，那么应该使用
        <a href="machinectl.html#"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a> 的
        <span class="command"><strong>shell</strong></span> 
        命令。</p><p>参见下文以了解如何与 <code class="option">--pipe</code> 一起使用。</p></dd><dt id="--pipe"><span class="term"><code class="option">--pipe</code>, </span><span class="term"><code class="option">-P</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--pipe">¶</a></dt><dd><p>让临时服务单元直接从 
        <span class="command"><strong>systemd-run</strong></span> 命令自身继承标准输入、标准输出、标准错误。
        这样就允许在命令行管道中使用 <span class="command"><strong>systemd-run</strong></span> 命令。
        注意，因为服务进程在此模式下不能控制 TTY ，
        所以不可将此模式用于运行例如 shell 之类需要与用户交互的命令(应该使用 <code class="option">--pty</code> 
        选项)。</p><p>如果同时使用 <code class="option">--pipe</code> 与 <code class="option">--pty</code> 选项，
        那么将会自动检测应该使用哪种模式：如果临时服务单元的标准输入、标准输出、标准错误已经连接到了某个 TTY 上，
        那么使用 <code class="option">--pty</code> 模式，否则使用 <code class="option">--pipe</code> 模式。</p><p>使用此选项之后， <span class="command"><strong>systemd-run</strong></span> 接收到的文件描述符将原封不动的传递给临时服务进程。
        如果临时服务拥有的权限与
        <span class="command"><strong>systemd-run</strong></span> 不同，那么临时服务有可能无权打开传递过来的文件描述符。
        如果被调用的进程是一个 shell 脚本，
        并且使用类似 <span class="command"><strong>echo "hello" &gt; /dev/stderr</strong></span> 的方式向标准错误输出消息，
        那么可能会导致故障(有可能无权打开 stderr 文件描述符)。解决方案是使用类似 <span class="command"><strong>echo
        "hello" &gt;&amp;2</strong></span> 的方式进行替代。</p></dd><dt id="--shell"><span class="term"><code class="option">--shell</code>, </span><span class="term"><code class="option">-S</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--shell">¶</a></dt><dd><p>一个等价于 "<code class="literal">--pty --same-dir --wait --collect --service-type=exec $SHELL</code>" 的快捷方式。
        也就是在当前工作目录中、在一个临时服务的上下文中，开启一个交互式 shell 
        来运行指定的命令。</p></dd><dt id="--quiet"><span class="term"><code class="option">--quiet</code>, </span><span class="term"><code class="option">-q</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--quiet">¶</a></dt><dd><p>安静模式，也就是不显示额外的运行时信息。
        经常与
        <code class="option">--pty</code> 一起使用，
        以略过关于如何结束TTY连接的消息。</p></dd><dt id="--on-active="><span class="term"><code class="option">--on-active=</code>, </span><span class="term"><code class="option">--on-boot=</code>, </span><span class="term"><code class="option">--on-startup=</code>, </span><span class="term"><code class="option">--on-unit-active=</code>, </span><span class="term"><code class="option">--on-unit-inactive=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--on-active=">¶</a></dt><dd><p>为了在特定的时间运行指定的命令，定义一个与临时服务单元相关联的临时 timer 单元。详见
        <a href="systemd.timer.html#"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>
        手册 <code class="varname">OnActiveSec=</code>, <code class="varname">OnBootSec=</code>, <code class="varname">OnStartupSec=</code>,
        <code class="varname">OnUnitActiveSec=</code>, <code class="varname">OnUnitInactiveSec=</code> 的解释。
        这些选项都是对应 <span class="command"><strong>--timer-property=</strong></span> 各种属性的快捷方式。
        这些选项不能与 <code class="option">--scope</code> 或 <code class="option">--pty</code> 一起使用。</p></dd><dt id="--on-calendar="><span class="term"><code class="option">--on-calendar=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--on-calendar=">¶</a></dt><dd><p>为了在特定的时间运行指定的命令，定义一个与临时服务单元相关联的临时 timer 单元。详见
         <a href="systemd.timer.html#"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a> 手册 <code class="varname">OnCalendar=</code> 的解释。
        此选项是 <span class="command"><strong>--timer-property=OnCalendar=</strong></span> 的快捷方式。
        此选项不能与 <code class="option">--scope</code> 或 <code class="option">--pty</code> 一起使用。</p></dd><dt id="--path-property="><span class="term"><code class="option">--path-property=</code>, </span><span class="term"><code class="option">--socket-property=</code>, </span><span class="term"><code class="option">--timer-property=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--path-property=">¶</a></dt><dd><p>为临时 path, socket, timer 单元设置一个属性。这些选项与
        <code class="option">--property=</code> 类似，但是其目标是临时 path, socket, timer 单元(而不是用来运行指定命令的临时服务单元)。
        这些选项接受的值与
        <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a> 的
        <span class="command"><strong>set-property</strong></span> 命令相同。这些选项不能与
        <code class="option">--scope</code> or <code class="option">--pty</code> 一起使用。</p></dd><dt id="--no-block"><span class="term"><code class="option">--no-block</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--no-block">¶</a></dt><dd><p>不同步等待临时单元完成启动操作。
          如果未使用此选项，那么 <span class="command"><strong>systemd-run</strong></span> 将会在临时单元完成启动操作之后才返回。
          使用此选项之后，<span class="command"><strong>systemd-run</strong></span> 将会立即返回，并以异步方式检查临时单元是否完成了启动操作。
          此选项不可与 <code class="option">--wait</code> 一起使用。</p></dd><dt id="--wait"><span class="term"><code class="option">--wait</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--wait">¶</a></dt><dd><p>同步等待临时服务单元直到其终止。使用此选项之后，
        <span class="command"><strong>systemd-run</strong></span> 将会一直等待临时服务单元(包括所依赖的单元)完成启动，
        并且一直等待到临时服务单元最终终止(一般是指定的命令运行结束)，
        最后显示临时服务单元的运行时简明统计信息(总运行时长、CPU使用量(如果设置了
         <code class="option">--property=CPUAccounting=1</code> 的话))，并返回被执行命令的退出状态。
        可以使用 <code class="option">--quiet</code> 选项略过最后的简明统计信息。此选项不可与
        <code class="option">--no-block</code>, <code class="option">--scope</code> 以及 path, socket, timer 选项(<code class="option">--*-property=</code>)一起使用。</p></dd><dt id="-G"><span class="term"><code class="option">-G</code>, </span><span class="term"><code class="option">--collect</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#-G">¶</a></dt><dd><p>即使临时单元执行失败(failed)，也在结束后从内存中卸载它。
        如果没有设置此选项，所有运行失败的(failed)的单元都会保留在内存中，直到用户明确使用
        <span class="command"><strong>systemctl reset-failed</strong></span> 或等价命令重置了它们的失败状态。
        另一方面，运行成功的单元总是会被立即卸载。使用此选项之后，单元的"垃圾回收"策略将更加激进，
        无论单元是否执行成功，都会在执行结束后被卸载。此选项是
        <span class="command"><strong>--property=CollectMode=inactive-or-failed</strong></span> 的快捷方式，详见
        <code class="varname">CollectMode=</code> 选项(参见
        <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
        手册)。</p></dd><dt id="--user"><span class="term"><code class="option">--user</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--user">¶</a></dt><dd><p><a name="user-text"></a>与当前调用用户的用户服务管理器(systemd 用户实例)通信，
      而不是默认的系统服务管理器(systemd 系统实例)。</p></dd><dt id="--system"><span class="term"><code class="option">--system</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--system">¶</a></dt><dd><p><a name="system-text"></a>与系统服务管理器(systemd 系统实例)通信，
      这是默认值。</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#-H">¶</a></dt><dd><p><a name="host-text"></a>操作指定的远程主机。可以仅指定一个主机名(hostname)，
      也可以使用 "<code class="literal">username@hostname</code>" 格式。
      hostname 后面还可以加上
      SSH监听端口(以冒号"<code class="literal">:</code>"分隔)与容器名(以正斜线"<code class="literal">/</code>"分隔)，
      也就是形如 "<code class="literal">hostname:port/container</code>" 的格式，
      以表示直接连接到指定主机的指定容器内。
      操作将通过SSH协议进行，以确保安全。
      可以通过
      <span class="command"><strong>machinectl -H
      <em class="replaceable"><code>HOST</code></em></strong></span> 命令列出远程主机上的所有容器名称。IPv6地址必须放在方括号([])内。</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#-M">¶</a></dt><dd><p><a name="machine-text"></a>在本地容器内执行操作。
      必须明确指定容器的名称。</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#-h">¶</a></dt><dd><p><a name="help-text"></a>显示简短的帮助信息并退出。
    </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="systemd-run.html#--version">¶</a></dt><dd><p><a name="version-text"></a>显示简短的版本信息并退出。</p></dd></dl></div><p>所有 <em class="replaceable"><code>COMMAND</code></em>
    之后的部分都将被当作被调用命令的命令行参数(ARGS)。
    如果想要以临时 service 单元的方式运行特定的命令，
    那么 <em class="replaceable"><code>COMMAND</code></em> 参数必须是一个可执行文件的绝对路径。</p></div><div class="refsect1"><a name="id-1.7"></a><h2 id="退出状态">退出状态<a class="headerlink" title="Permalink to this headline" href="systemd-run.html#%E9%80%80%E5%87%BA%E7%8A%B6%E6%80%81">¶</a></h2><p>返回值为 0 表示成功，
    非零返回值表示失败代码。</p></div><div class="refsect1"><a name="id-1.8"></a><h2 id="例子">例子<a class="headerlink" title="Permalink to this headline" href="systemd-run.html#%E4%BE%8B%E5%AD%90">¶</a></h2><div class="example"><a name="id-1.8.2"></a><p class="title"><b>例 1. 记录 systemd 传递给服务单元的环境变量</b></p><div class="example-contents"><pre class="programlisting"># systemd-run env
Running as unit: run-19945.service
# journalctl -u run-19945.service
Sep 08 07:37:21 bupkis systemd[1]: Starting /usr/bin/env...
Sep 08 07:37:21 bupkis systemd[1]: Started /usr/bin/env.
Sep 08 07:37:21 bupkis env[19948]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Sep 08 07:37:21 bupkis env[19948]: LANG=en_US.UTF-8
Sep 08 07:37:21 bupkis env[19948]: BOOT_IMAGE=/vmlinuz-3.11.0-0.rc5.git6.2.fc20.x86_64</pre></div></div><br class="example-break"><div class="example"><a name="id-1.8.3"></a><p class="title"><b>例 2. 限制一个命令可以使用的资源</b></p><div class="example-contents"><pre class="programlisting"># systemd-run -p BlockIOWeight=10 updatedb</pre><p>运行
      <a href="http://man7.org/linux/man-pages/man8/updatedb.8.html"><span class="citerefentry"><span class="refentrytitle">updatedb</span>(8)</span></a>
      工具，但是将其块设备 I/O 权重降低到"10"。参见
      <a href="systemd.resource-control.html#"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>
      手册对 <code class="varname">BlockIOWeight=</code>
      的说明。</p></div></div><br class="example-break"><div class="example"><a name="id-1.8.4"></a><p class="title"><b>例 3. 在特定的时间运行命令</b></p><div class="example-contents"><p>下面的命令将会在30秒之后 touch 指定的文件。</p><pre class="programlisting"># date; systemd-run --on-active=30 --timer-property=AccuracySec=100ms /bin/touch /tmp/foo
Mon Dec  8 20:44:24 KST 2014
Running as unit: run-71.timer
Will run service as unit: run-71.service
# journalctl -b -u run-71.timer
-- Logs begin at Fri 2014-12-05 19:09:21 KST, end at Mon 2014-12-08 20:44:54 KST. --
Dec 08 20:44:38 container systemd[1]: Starting /bin/touch /tmp/foo.
Dec 08 20:44:38 container systemd[1]: Started /bin/touch /tmp/foo.
# journalctl -b -u run-71.service
-- Logs begin at Fri 2014-12-05 19:09:21 KST, end at Mon 2014-12-08 20:44:54 KST. --
Dec 08 20:44:48 container systemd[1]: Starting /bin/touch /tmp/foo...
Dec 08 20:44:48 container systemd[1]: Started /bin/touch /tmp/foo.</pre></div></div><br class="example-break"><div class="example"><a name="id-1.8.5"></a><p class="title"><b>例 4. 允许被运行的命令访问终端</b></p><div class="example-contents"><p>以临时服务的方式运行 <code class="filename">/bin/bash</code> 命令，
      并将其标准输入、标准输出、标准错误连接到当前的 TTY 设备上：</p><pre class="programlisting"># systemd-run -t --send-sighup /bin/bash</pre></div></div><br class="example-break"><div class="example"><a name="id-1.8.6"></a><p class="title"><b>例 5. 在一个临时的用户单元中运行 <span class="command">screen</span> 工具</b></p><div class="example-contents"><pre class="programlisting">$ systemd-run --scope --user screen
Running scope as unit run-r14b0047ab6df45bfb45e7786cc839e76.scope.

$ screen -ls
There is a screen on:
        492..laptop     (Detached)
1 Socket in /var/run/screen/S-fatima.
</pre><p>这将把 <span class="command"><strong>screen</strong></span> 作为
      <span class="command"><strong>systemd --user</strong></span> 进程(由 <code class="filename">user@.service</code> 的某个实例启动)的子进程运行，
      并将其封装在一个临时 scope 单元中。之所以使用
      <a href="systemd.scope.html#"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a>
      单元而不是
      <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>
      单元，是因为 <span class="command"><strong>screen</strong></span> 会在脱离终端后退出，进而导致 service 单元被终结。
      将 <span class="command"><strong>screen</strong></span> 放在用户单元中运行，
      可以避免它成为会话 scope 单元的一部分。
      因为，如果默认设置 <code class="varname">KillUserProcesses=yes</code> 存在于
      <a href="logind.conf.html#"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a>
      之中，那么当用户退出会话时，会话 scope 单元
      将会被终结。</p><p> <code class="filename">user@.service</code> 会在用户首次登录时自动启动，
      并且只要仍然存在至少一个用户登录会话，它就始终保持运行。
      仅当用户退出最后一个登录会话之后，
      <code class="filename">user@.service</code> 及其所有子服务才会停止运行。
      只要没有为用户开启"逗留"特性，那么这就是默认行为。
      如果开启了"逗留"特性，那么
      <code class="filename">user@.service</code>
      将会在系统启动时自动启动(即使用户并未登录)，
      并且不会随着用户退出所有登录会话而停止。</p><p>开启"逗留"特性之后，用户就可以在未登录的情况下运行进程了。
      例如，为了确保 <span class="command"><strong>screen</strong></span> 在用户登出之后也能继续保持运行，
      甚至是会话 scope 单元已经被终止的情况下也能继续保持运行，
      在默认配置情况下，用户可以使用如下命令为自己开启"逗留"特性：</p><pre class="programlisting">$ loginctl enable-linger</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="id-1.9"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="systemd-run.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
      <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
      <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
      <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
      <a href="systemd.scope.html#"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a>,
      <a href="systemd.slice.html#"><span class="citerefentry"><span class="refentrytitle">systemd.slice</span>(5)</span></a>,
      <a href="systemd.exec.html#"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>,
      <a href="systemd.resource-control.html#"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>,
      <a href="systemd.timer.html#"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>,
      <a href="systemd-mount.html#"><span class="citerefentry"><span class="refentrytitle">systemd-mount</span>(1)</span></a>,
      <a href="machinectl.html#"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>
    </p></div></div></body></html>
